package com.project.common.caching;

public interface CacheOption {
    /**
     * 启用缓存设置.
     */
    static CacheOption enable(final String hashKey) {
        return new CacheOption() {
            @Override
            public boolean enabled() {
                return true;
            }

            @Override
            public String hashKey() {
                return hashKey;
            }
        };
    }

    /**
     * 禁用缓存设置.
     */
    static CacheOption disable() {
        return new CacheOption() {
            @Override
            public boolean enabled() {
                return false;
            }

            @Override
            public String hashKey() {
                return null;
            }
        };
    }

    /**
     * 是否使用缓存.
     */
    boolean enabled();

    /**
     * 缓存的key.
     */
    String hashKey();
}
